import { useGlobalStore } from "@/store/global";
import type { App } from "vue";

export function registerDirective(app: App) {
    // 注册全局的自定义指令
    app.directive('permission', {
        // el：获取绑定自定义指令的标签
        // binding.value：获取自定义指令传递的值
        mounted(el, binding) {
            const globalStore = useGlobalStore();
            // 完整的权限字段数组
            const permissionData = globalStore.permissionData;
            // 判断当前按钮的权限值在不在数组中
            const result = findPermission(permissionData, binding.value);
            // 进入if，表示当前按钮的权限值不在权限数组中
            if (!result) {
                // el.remove();  // 删除

                el.disabled = true;   // 设置禁用功能
                el.classList.add('is-disabled'); // 添加禁用样式
            }
        }
    })
}


function findPermission(permissionData: any[], value: string): boolean {
    return permissionData.some((item: any) => {
        if (item.children) {
            return findPermission(item.children, value);
        }
        return item.title == value
    })
}